package chapter08;

import java.io.File;
import java.io.IOException;

public class Java02_IO_File {
    public static void main(String[] args) throws IOException {
        // TODO Java IO - 文件流

        // TODO FILE : 文件类型（文件、文件夹），数据java.io
        // 创建文件对象，使用文件路径关联文件
        String filePath = "D:\\practiceCode\\java-top-speed\\data";
        File file = new File(filePath);
        System.out.println(file);   // D:\practiceCode\java-top-speed\data
        System.out.println("-----------------------");

        // 文件对象的操作
        // TODO 判断当前文件对象是否为文件
        System.out.println(file.isFile());  // true
        // TODO 判断当前文件对象是否为文件夹
        System.out.println(file.isDirectory()); // false
        // TODO 判断当前文件对象是否存在关联
        System.out.println(file.exists());  // true
        System.out.println("-----------------------");

        if (file.exists()) {
            // TODO 文件对象存在的情况
            if (file.isFile()) {
                System.out.println("文件对象关联的是文件");
                // 获取文件名称
                System.out.println(file.getName());
                // 获取文件长度
                System.out.println(file.length());
                // 获取文件最后修改时间
                System.out.println(file.lastModified());
                // 获取文件绝对路径
                System.out.println(file.getAbsoluteFile());
            } else if (file.isDirectory()) {
                System.out.println("文件对象关联的是文件夹");
                // 获取文件名称
                System.out.println(file.getName());
                // 获取文件最后修改时间
                System.out.println(file.lastModified());
                // 获取文件绝对路径
                System.out.println(file.getAbsoluteFile());

                System.out.println("-----------------------");
                // 查看文件夹内包含文件（名称）
                String[] list = file.list();
                System.out.println("文件夹中的文件：");
                for (String s : list) {
                    System.out.println(s);
                }

                System.out.println("-----------------------");
                // 查看文件夹中包含的文件对象（绝对路径）
                File[] files = file.listFiles();
                System.out.println("文件夹中的文件对象：");
                for (File f : files) {
                    System.out.println(f);
                }
            }
        } else {
            // TODO 文件对象不存在的情况
            System.out.println("文件对象不存在，没有关联成功");
            // 创建多级文件目录
            file.mkdirs();
            // 创建新文件
            file.createNewFile();
        }
    }

}
